using dnAnalytics.Math;
using NUnit.Framework;

namespace dnAnalytics.Tests.Math
{
    [TestFixture]
    public class ComplexMath_Divide32Test
    {
        [Test]
        public void Divide()
        {
            Complex32 a = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            Complex32 b = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(1.0f, 0.0f), 7);
            a = new Complex32(0.0f, 1.19209289550780998537e-7f);
            b = new Complex32(0.0f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(0.0f, -1.19209289550780998537e-7f);
            b = new Complex32(0.0f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.38418579101561997074e-7f, 0.0f), 7);
            a = new Complex32(0.0f, 5.0e-1f);
            b = new Complex32(0.0f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(0.0f, -5.0e-1f);
            b = new Complex32(0.0f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.0e-1f, 0.0f), 7);
            a = new Complex32(0.0f, 1.0f);
            b = new Complex32(0.0f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(0.0f, -1.0f);
            b = new Complex32(0.0f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.0e-1f, 0.0f), 7);
            a = new Complex32(0.0f, 2.0f);
            b = new Complex32(0.0f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(0.0f, -2.0f);
            b = new Complex32(0.0f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.384185791015625e-7f, 0.0f), 7);
            a = new Complex32(0.0f, 8.388608e6f);
            b = new Complex32(0.0f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(0.0f, -8.388608e6f);
            b = new Complex32(1.19209289550780998537e-7f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, -7.03687441776641484375e13f), 7);
            a = new Complex32(1.19209289550780998537e-7f, 0.0f);
            b = new Complex32(-1.19209289550780998537e-7f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, 0.0f);
            b = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.0e-1f, 5.0e-1f), 7);
            a = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            b = new Complex32(1.19209289550780998537e-7f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, 1.0f), 7);
            a = new Complex32(1.19209289550780998537e-7f, -1.19209289550780998537e-7f);
            b = new Complex32(-1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            b = new Complex32(-1.19209289550780998537e-7f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, -1.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, -1.19209289550780998537e-7f);
            b = new Complex32(1.19209289550780998537e-7f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.38418635944967305352e-7f, 2.38418522258129583742e-7f), 7);
            a = new Complex32(1.19209289550780998537e-7f, 5.0e-1f);
            b = new Complex32(1.19209289550780998537e-7f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999886313162e-1f, 4.76837158203096889094e-7f), 7);
            a = new Complex32(1.19209289550780998537e-7f, -5.0e-1f);
            b = new Complex32(-1.19209289550780998537e-7f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, 5.0e-1f);
            b = new Complex32(-1.19209289550780998537e-7f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999886313162e-1f, -4.76837158203096889094e-7f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, -5.0e-1f);
            b = new Complex32(1.19209289550780998537e-7f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.00000000000007105427e-1f, 5.96046447753896522356e-8f), 7);
            a = new Complex32(1.19209289550780998537e-7f, 1.0f);
            b = new Complex32(1.19209289550780998537e-7f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999971578291e-1f, 2.38418579101558608942e-7f), 7);
            a = new Complex32(1.19209289550780998537e-7f, -1.0f);
            b = new Complex32(-1.19209289550780998537e-7f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, 1.0f);
            b = new Complex32(-1.19209289550780998537e-7f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999971578291e-1f, -2.38418579101558608942e-7f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, -1.0f);
            b = new Complex32(1.19209289550780998537e-7f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.00000000000001776357e-1f, 2.98023223876951437552e-8f), 7);
            a = new Complex32(1.19209289550780998537e-7f, 2.0f);
            b = new Complex32(1.19209289550780998537e-7f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999992894573e-1f, 1.19209289550780575021e-7f), 7);
            a = new Complex32(1.19209289550780998537e-7f, -2.0f);
            b = new Complex32(-1.19209289550780998537e-7f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, 2.0f);
            b = new Complex32(-1.19209289550780998537e-7f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999992894573e-1f, -1.19209289550780575021e-7f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, -2.0f);
            b = new Complex32(1.19209289550780998537e-7f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.384185791015625e-7f, 1.42108513270701847235e-14f), 7);
            a = new Complex32(1.19209289550780998537e-7f, 8.388608e6f);
            b = new Complex32(1.19209289550780998537e-7f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 2.84217094304039474814e-14f), 7);
            a = new Complex32(1.19209289550780998537e-7f, -8.388608e6f);
            b = new Complex32(-1.19209289550780998537e-7f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, 8.388608e6f);
            b = new Complex32(-1.19209289550780998537e-7f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, -2.84217094304039474814e-14f), 7);
            a = new Complex32(-1.19209289550780998537e-7f, -8.388608e6f);
            b = new Complex32(5.0e-1f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.38418579101561997074e-7f, -1.6777216e7f), 7);
            a = new Complex32(5.0e-1f, 0.0f);
            b = new Complex32(-5.0e-1f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-5.0e-1f, 0.0f);
            b = new Complex32(5.0e-1f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999943156581e-1f, 2.38418579101548444547e-7f), 7);
            a = new Complex32(5.0e-1f, 1.19209289550780998537e-7f);
            b = new Complex32(5.0e-1f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999886313162e-1f, 4.76837158203096889094e-7f), 7);
            a = new Complex32(5.0e-1f, -1.19209289550780998537e-7f);
            b = new Complex32(-5.0e-1f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-5.0e-1f, 1.19209289550780998537e-7f);
            b = new Complex32(-5.0e-1f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999886313162e-1f, -4.76837158203096889094e-7f), 7);
            a = new Complex32(-5.0e-1f, -1.19209289550780998537e-7f);
            b = new Complex32(5.0e-1f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.00000119209289550781e-1f, 4.99999880790710449219e-1f), 7);
            a = new Complex32(5.0e-1f, 5.0e-1f);
            b = new Complex32(5.0e-1f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, 1.0f), 7);
            a = new Complex32(5.0e-1f, -5.0e-1f);
            b = new Complex32(-5.0e-1f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-5.0e-1f, 5.0e-1f);
            b = new Complex32(-5.0e-1f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, -1.0f), 7);
            a = new Complex32(-5.0e-1f, -5.0e-1f);
            b = new Complex32(5.0e-1f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-6.0e-1f, 2.0e-1f), 7);
            a = new Complex32(5.0e-1f, 1.0f);
            b = new Complex32(5.0e-1f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-6.0e-1f, 8.0e-1f), 7);
            a = new Complex32(5.0e-1f, -1.0f);
            b = new Complex32(-5.0e-1f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-5.0e-1f, 1.0f);
            b = new Complex32(-5.0e-1f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-6.0e-1f, -8.0e-1f), 7);
            a = new Complex32(-5.0e-1f, -1.0f);
            b = new Complex32(5.0e-1f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.29411764705882352941e-1f, 1.17647058823529411765e-1f), 7);
            a = new Complex32(5.0e-1f, 2.0f);
            b = new Complex32(5.0e-1f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-8.82352941176470588235e-1f, 4.70588235294117647059e-1f), 7);
            a = new Complex32(5.0e-1f, -2.0f);
            b = new Complex32(-5.0e-1f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-5.0e-1f, 2.0f);
            b = new Complex32(-5.0e-1f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-8.82352941176470588235e-1f, -4.70588235294117647059e-1f), 7);
            a = new Complex32(-5.0e-1f, -2.0f);
            b = new Complex32(5.0e-1f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.38418582654275331768e-7f, 5.96046305645356980398e-8f), 7);
            a = new Complex32(5.0e-1f, 8.388608e6f);
            b = new Complex32(5.0e-1f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999992894573e-1f, 1.19209289550780826484e-7f), 7);
            a = new Complex32(5.0e-1f, -8.388608e6f);
            b = new Complex32(-5.0e-1f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-5.0e-1f, 8.388608e6f);
            b = new Complex32(-5.0e-1f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999992894573e-1f, -1.19209289550780826484e-7f), 7);
            a = new Complex32(-5.0e-1f, -8.388608e6f);
            b = new Complex32(1.0f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.0e-1f, -8.388608e6f), 7);
            a = new Complex32(1.0f, 0.0f);
            b = new Complex32(-1.0f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.0f, 0.0f);
            b = new Complex32(1.0f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999985789145e-1f, 1.19209289550779304471e-7f), 7);
            a = new Complex32(1.0f, 1.19209289550780998537e-7f);
            b = new Complex32(1.0f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999971578291e-1f, 2.38418579101558608942e-7f), 7);
            a = new Complex32(1.0f, -1.19209289550780998537e-7f);
            b = new Complex32(-1.0f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.0f, 1.19209289550780998537e-7f);
            b = new Complex32(-1.0f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999971578291e-1f, -2.38418579101558608942e-7f), 7);
            a = new Complex32(-1.0f, -1.19209289550780998537e-7f);
            b = new Complex32(1.0f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-8.00000047683715820312e-1f, 3.99999904632568359375e-1f), 7);
            a = new Complex32(1.0f, 5.0e-1f);
            b = new Complex32(1.0f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(6.0e-1f, 8.0e-1f), 7);
            a = new Complex32(1.0f, -5.0e-1f);
            b = new Complex32(-1.0f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.0f, 5.0e-1f);
            b = new Complex32(-1.0f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(6.0e-1f, -8.0e-1f), 7);
            a = new Complex32(-1.0f, -5.0e-1f);
            b = new Complex32(1.0f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-7.5e-1f, 2.5e-1f), 7);
            a = new Complex32(1.0f, 1.0f);
            b = new Complex32(1.0f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, 1.0f), 7);
            a = new Complex32(1.0f, -1.0f);
            b = new Complex32(-1.0f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.0f, 1.0f);
            b = new Complex32(-1.0f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, -1.0f), 7);
            a = new Complex32(-1.0f, -1.0f);
            b = new Complex32(1.0f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-6.0e-1f, 2.0e-1f), 7);
            a = new Complex32(1.0f, 2.0f);
            b = new Complex32(1.0f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-6.0e-1f, 8.0e-1f), 7);
            a = new Complex32(1.0f, -2.0f);
            b = new Complex32(-1.0f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.0f, 2.0f);
            b = new Complex32(-1.0f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-6.0e-1f, -8.0e-1f), 7);
            a = new Complex32(-1.0f, -2.0f);
            b = new Complex32(1.0f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.3841859331241382707e-7f, 1.19209261129070125531e-7f), 7);
            a = new Complex32(1.0f, 8.388608e6f);
            b = new Complex32(1.0f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999971578291e-1f, 2.38418579101559111868e-7f), 7);
            a = new Complex32(1.0f, -8.388608e6f);
            b = new Complex32(-1.0f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-1.0f, 8.388608e6f);
            b = new Complex32(-1.0f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999971578291e-1f, -2.38418579101559111868e-7f), 7);
            a = new Complex32(-1.0f, -8.388608e6f);
            b = new Complex32(2.0f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.0e-1f, -4.194304e6f), 7);
            a = new Complex32(2.0f, 0.0f);
            b = new Complex32(-2.0f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-2.0f, 0.0f);
            b = new Complex32(2.0f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999996447286e-1f, 5.96046447753902875103e-8f), 7);
            a = new Complex32(2.0f, 1.19209289550780998537e-7f);
            b = new Complex32(2.0f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999992894573e-1f, 1.19209289550780575021e-7f), 7);
            a = new Complex32(2.0f, -1.19209289550780998537e-7f);
            b = new Complex32(-2.0f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-2.0f, 1.19209289550780998537e-7f);
            b = new Complex32(-2.0f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999992894573e-1f, -1.19209289550780575021e-7f), 7);
            a = new Complex32(-2.0f, -1.19209289550780998537e-7f);
            b = new Complex32(2.0f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.4117648461285759421e-1f, 2.35294061548569623162e-1f), 7);
            a = new Complex32(2.0f, 5.0e-1f);
            b = new Complex32(2.0f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(8.82352941176470588235e-1f, 4.70588235294117647059e-1f), 7);
            a = new Complex32(2.0f, -5.0e-1f);
            b = new Complex32(-2.0f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-2.0f, 5.0e-1f);
            b = new Complex32(-2.0f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(8.82352941176470588235e-1f, -4.70588235294117647059e-1f), 7);
            a = new Complex32(-2.0f, -5.0e-1f);
            b = new Complex32(2.0f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.0e-1f, 2.0e-1f), 7);
            a = new Complex32(2.0f, 1.0f);
            b = new Complex32(2.0f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(6.0e-1f, 8.0e-1f), 7);
            a = new Complex32(2.0f, -1.0f);
            b = new Complex32(-2.0f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-2.0f, 1.0f);
            b = new Complex32(-2.0f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(6.0e-1f, -8.0e-1f), 7);
            a = new Complex32(-2.0f, -1.0f);
            b = new Complex32(2.0f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-7.5e-1f, 2.5e-1f), 7);
            a = new Complex32(2.0f, 2.0f);
            b = new Complex32(2.0f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, 1.0f), 7);
            a = new Complex32(2.0f, -2.0f);
            b = new Complex32(-2.0f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-2.0f, 2.0f);
            b = new Complex32(-2.0f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, -1.0f), 7);
            a = new Complex32(-2.0f, -2.0f);
            b = new Complex32(2.0f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.38418635944967808278e-7f, 2.38418522258130086668e-7f), 7);
            a = new Complex32(2.0f, 8.388608e6f);
            b = new Complex32(2.0f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999886313162e-1f, 4.76837158203097894946e-7f), 7);
            a = new Complex32(2.0f, -8.388608e6f);
            b = new Complex32(-2.0f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-2.0f, 8.388608e6f);
            b = new Complex32(-2.0f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999886313162e-1f, -4.76837158203097894946e-7f), 7);
            a = new Complex32(-2.0f, -8.388608e6f);
            b = new Complex32(8.388608e6f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-2.384185791015625e-7f, -1.0f), 7);
            a = new Complex32(8.388608e6f, 0.0f);
            b = new Complex32(-8.388608e6f, 0.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-8.388608e6f, 0.0f);
            b = new Complex32(8.388608e6f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 1.42108547152019737407e-14f), 7);
            a = new Complex32(8.388608e6f, 1.19209289550780998537e-7f);
            b = new Complex32(8.388608e6f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(1.0f, 2.84217094304039474814e-14f), 7);
            a = new Complex32(8.388608e6f, -1.19209289550780998537e-7f);
            b = new Complex32(-8.388608e6f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-8.388608e6f, 1.19209289550780998537e-7f);
            b = new Complex32(-8.388608e6f, -1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(1.0f, -2.84217094304039474814e-14f), 7);
            a = new Complex32(-8.388608e6f, -1.19209289550780998537e-7f);
            b = new Complex32(8.388608e6f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999996447287e-1f, 5.96046305645356980398e-8f), 7);
            a = new Complex32(8.388608e6f, 5.0e-1f);
            b = new Complex32(8.388608e6f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999992894573e-1f, 1.19209289550780826484e-7f), 7);
            a = new Complex32(8.388608e6f, -5.0e-1f);
            b = new Complex32(-8.388608e6f, 5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-8.388608e6f, 5.0e-1f);
            b = new Complex32(-8.388608e6f, -5.0e-1f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999992894573e-1f, -1.19209289550780826484e-7f), 7);
            a = new Complex32(-8.388608e6f, -5.0e-1f);
            b = new Complex32(8.388608e6f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999992894573e-1f, 5.96046447753897779671e-8f), 7);
            a = new Complex32(8.388608e6f, 1.0f);
            b = new Complex32(8.388608e6f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999971578291e-1f, 2.38418579101559111868e-7f), 7);
            a = new Complex32(8.388608e6f, -1.0f);
            b = new Complex32(-8.388608e6f, 1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-8.388608e6f, 1.0f);
            b = new Complex32(-8.388608e6f, -1.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999971578291e-1f, -2.38418579101559111868e-7f), 7);
            a = new Complex32(-8.388608e6f, -1.0f);
            b = new Complex32(8.388608e6f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-9.99999999999971578291e-1f, 1.19209289550774473736e-7f), 7);
            a = new Complex32(8.388608e6f, 2.0f);
            b = new Complex32(8.388608e6f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999886313162e-1f, 4.76837158203097894946e-7f), 7);
            a = new Complex32(8.388608e6f, -2.0f);
            b = new Complex32(-8.388608e6f, 2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-8.388608e6f, 2.0f);
            b = new Complex32(-8.388608e6f, -2.0f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(9.99999999999886313162e-1f, -4.76837158203097894946e-7f), 7);
            a = new Complex32(-8.388608e6f, -2.0f);
            b = new Complex32(8.388608e6f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-5.00000119209289550781e-1f, 4.99999880790710449219e-1f), 7);
            a = new Complex32(8.388608e6f, 8.388608e6f);
            b = new Complex32(8.388608e6f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, 1.0f), 7);
            a = new Complex32(8.388608e6f, -8.388608e6f);
            b = new Complex32(-8.388608e6f, 8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-1.0f, 0.0f), 7);
            a = new Complex32(-8.388608e6f, 8.388608e6f);
            b = new Complex32(-8.388608e6f, -8.388608e6f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(0.0f, -1.0f), 7);
            a = new Complex32(-8.388608e6f, -8.388608e6f);
            b = new Complex32(0.0f, 1.19209289550780998537e-7f);
            TestHelper.TestSignificantDigits(a / b, new Complex32(-7.03687441776641484375e13f, 7.03687441776641484375e13f), 7);
        }
    }
}